Ocknamo.com

HomeWorks黄金虫ブログ
HomeWorksBLOG

Sequelizeで"Please use Symbol based operators..."のエラーが消えないときの対処方法

Posted: 2018-05-18

Hero image

Sequelize を読み込んだときに以下のエラーメッセージが出ることがあります。

"String based operators are now deprecated.Please use Symbol based operators for better security ....node_modules/sequelize/lib/sequelize.js:236:13"

内容としては「where 句で String のオペレーターではなく Symbol のオペレーターを使いましょう、その方がセキュリティ的にベターだからね。」という内容なのですが、where 句にオペレーターを使用していない場合でも出てきてしまい困っていました。

解決方法を見つけました。

https://stackoverflow.com/questions/46608382/sequelize-deprecated-error-message?rq=1

const Sequelize = require('sequelize')
const sequelize = new Sequelize(
  DB_NAME,
  USERNAME,
  PASSWORD,
  {
    host: HOSTNAME,
    dialect: 'mysql',
    logging: false,
    freezeTableName: true,
    operatorsAliases: false
  }
)

読み込む際に  operatorsAliases: false を指定しておけばよかったんですね。これはわからん。

String が廃止されたらエラーメッセージもなくなるのでこういう工夫も不要になるでしょう。

終わり